package com.example.personalizededucationsystem.service.recommendation;

import com.example.personalizededucationsystem.model.Question;
import com.example.personalizededucationsystem.model.User;

import java.util.List;

/**
 * 推荐策略接口
 * 定义了所有推荐算法必须实现的方法。
 */
public interface RecommendationStrategy {
    /**
     * 根据学生和数量推荐题目。
     *
     * @param student 目标学生
     * @param subject 推荐题目的科目
     * @return 推荐的题目列表
     */
    List<Question> recommend(User student, String subject, int count);

    /**
     * 获取策略的唯一名称，用于在工厂中注册和查找。
     *
     * @return 策略名称
     */
    String getStrategyName();
}